home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / dev_libs / feelin040718 / sources / dataspace / object.c < prev    next >
C/C++ Source or Header  |  2004-08-03  |  756b  |  40 lines

  1. #include "Private.h"
  2.  
  3. ///DS_New
  4. F_METHODM(APTR,DS_New,TagItem)
  5. {
  6.    struct LocalObjectData *LOD = F_LOD(Class,Obj);
  7.  
  8.    LOD -> Pool = (APTR)(F_DynamicGTD(F_IDA(FA_Dataspace_Pool),NULL,Msg));
  9.  
  10.    if (!LOD -> Pool)
  11.    {
  12.       if (LOD -> Pool = F_CreatePool(MEMF_CLEAR,1024,4))
  13.       {
  14.          F_NamePool(LOD -> Pool,"Dataspace / Chunks");
  15.  
  16.          LOD -> Flags |= FF_Dataspace_Allocated;
  17.       }
  18.    }
  19.  
  20.    if (!LOD -> Pool)
  21.    {
  22.       F_Log(FV_ERLV_USER,"Unable to Create/Access Pool");
  23.  
  24.       return NULL;
  25.    }
  26.    return Obj;
  27. }
  28. //+
  29. ///DS_Dispose
  30. F_METHOD(void,DS_Dispose)
  31. {
  32.    struct LocalObjectData *LOD = F_LOD(Class,Obj);
  33.  
  34.    if (LOD -> Pool && FF_Dataspace_Allocated & LOD -> Flags)
  35.    {
  36.       F_DeletePool(LOD -> Pool); LOD -> Pool = NULL;
  37.    }
  38. }
  39. //+
  40.